package day10.reflect;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Properties;

public class Demo {

	public static void main(String[] args) throws Exception {
//		AbstractDB db = new MySql();
//		db.getConnection();
//		
//		db = new SqlServer();
//		db.getConnection();
		
		// 利用反射+配置文件实现在java代码中不出现具体的子类代码，但是还可以new出具体子类对象
		// 如果在java代码中new具体子类代码，那么下一次切换数据库需要修改java代码需要重新编译java代码
		// db.properties   property、field、attribute
		FileInputStream fileInputStream = new FileInputStream("src/day10/reflect/db.properties");
		Properties properties = new Properties();
		properties.load(fileInputStream);
		String className = properties.getProperty("className");
		
		// day10.reflect.MySql
		Class clazz = Class.forName(className);
		AbstractDB db = (AbstractDB) clazz.newInstance();
		db.getConnection();
	}
}
